Skip to main content

07 特殊的可执行结构

模板是什么

一种特殊的可执行结构。来自于某种固定的、确定的逻辑。这些逻辑语义是非常明确的,输入输出都很确定,这样才能被设计成一个标准的、易于理解的可执行结构。

参数表

  • 对于函数来说,参数表就是在函数调用时传入的参数 0 到 n;
  • 对于构造器以及构造器的 new 运算来说,参数表就是 new 运算的一个运算数。

扩展风格的参数表

非简单的参数列表(Non-Simple Parameter List),即缺省参数。

new Func(...args)

参数展开通过迭代器实现。

赋值模板

function foo({x, y}) {
...
}

for (var {x, y} in obj) {
...
}

所有这些地方的赋值模板,都是在语法解析期就被分析出来,并在 JavaScript 内部作为一个可执行结构存放着。然后在运行期,会用它们来完成一个“从右操作数按模板取值,并赋值给左操作数”的过程。

模板字面量

`${1}`

调动了包括引用、求值、标识符绑定、内部可执行结构存储,以及执行函数调用在内的全部能力。